package com.da.springtest.other;

import com.da.springtest.other.dependon.MainConfig2;
import com.da.springtest.other.dependon.Service1;
import org.springframework.context.annotation.AnnotationConfigApplicationContext;

/**
 * 1.@Scope：用来定义bean 的作用域；2种用法：第1种：标注在类上；第2种：和@Bean一起标注在方法上
 *
 * 2.@DependsOn：用来指定当前bean依赖的bean，可以确保在创建当前bean之前，先将依赖的bean创建好；
 * 2种用法：第1种：标注在类上；第2种：和@Bean一起标注在方法上
 *
 * 3.@ImportResource：标注在配置类上，用来引入bean定义的配置文件
 * 以classpath:开头：检索目标为当前项目的classes目录
 * 以classpath*:开头：检索目标为当前项目的classes目录，以及项目中所有jar包中的目录，如果你确定jar不是检索目标，
 * 就不要用这种方式，由于需要扫描所有jar包，所以速度相对于第一种会慢一些
 *
 * 4.@Lazy：让bean延迟初始化；常见3种用法：第1种：标注在类上；第2种：标注在配置类上，
 * 会对配置类中所有的@Bean标注的方法有效；第3种：和@Bean一起标注在方法上
 */
public class ImportTest {
    public static void main(String[] args) {
        AnnotationConfigApplicationContext context = new AnnotationConfigApplicationContext(MainConfig2.class);
        System.out.println(context.getBean(Service1.class));
    }
}